Spring JDBC সেটআপ এবং কনফিগারেশন

Java Technologies - স্প্রিং জেডিবিসি (Spring JDBC)
178

স্প্রিং জেডিবিসি (Spring JDBC) সেটআপ এবং কনফিগারেশন করার জন্য আপনাকে কিছু নির্দিষ্ট পদক্ষেপ অনুসরণ করতে হবে। এটি সাধারণত স্প্রিং কনফিগারেশন ফাইল (XML বা Java-based) এবং ডেটাবেসের সাথে যোগাযোগ স্থাপন করার জন্য কিছু কম্পোনেন্ট ব্যবহার করে। নিচে আমি বিস্তারিতভাবে স্প্রিং জেডিবিসি সেটআপ এবং কনফিগারেশন করার প্রক্রিয়া দেখাব।

১. স্প্রিং জেডিবিসি সেটআপ (Maven Dependencies)

প্রথমে, আপনার pom.xml ফাইলে স্প্রিং জেডিবিসি এবং ডেটাবেসের জন্য প্রয়োজনীয় ডিপেনডেন্সি যুক্ত করতে হবে। এখানে একটি উদাহরণ:

<dependencies>
    <!-- Spring JDBC Dependency -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.3.20</version> <!-- আপনার প্রয়োজন অনুযায়ী সংস্করণ পরিবর্তন করুন -->
    </dependency>

    <!-- Spring Context (for configuration and beans) -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.20</version>
    </dependency>

    <!-- H2 Database (for testing, replace with your actual database driver) -->
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.4.200</version>
    </dependency>

    <!-- JDBC Driver (for your specific database, e.g., MySQL) -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.26</version> <!-- MySQL version -->
    </dependency>
</dependencies>

২. স্প্রিং কনফিগারেশন (Java Config)

স্প্রিং জেডিবিসি কনফিগারেশনে, সাধারণত DataSource, JdbcTemplate এবং TransactionManager কনফিগার করা হয়। এখানে একটি সাধারণ উদাহরণ দেখানো হল:

@Configuration
@ComponentScan(basePackages = "com.example")
@EnableTransactionManagement
public class AppConfig {

    @Bean
    public DataSource dataSource() {
        // H2 Database example, change this for other databases
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("org.h2.Driver");
        dataSource.setUrl("jdbc:h2:~/test");
        dataSource.setUsername("sa");
        dataSource.setPassword("");
        return dataSource;
    }

    @Bean
    public JdbcTemplate jdbcTemplate() {
        return new JdbcTemplate(dataSource());
    }

    @Bean
    public PlatformTransactionManager transactionManager() {
        return new DataSourceTransactionManager(dataSource());
    }
}

৩. স্প্রিং কনফিগারেশন (XML Config)

এটি XML কনফিগারেশনের মাধ্যমে স্প্রিং জেডিবিসি সেটআপ করার উদাহরণ:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <!-- DataSource Configuration -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="org.h2.Driver"/>
        <property name="url" value="jdbc:h2:~/test"/>
        <property name="username" value="sa"/>
        <property name="password" value=""/>
    </bean>

    <!-- JdbcTemplate Bean -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <constructor-arg ref="dataSource"/>
    </bean>

    <!-- Transaction Manager -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

</beans>

৪. JdbcTemplate ব্যবহার

এবার, আপনি JdbcTemplate ব্যবহার করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো:

@Component
public class EmployeeDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    public void addEmployee(int id, String name, double salary) {
        String sql = "INSERT INTO Employee (id, name, salary) VALUES (?, ?, ?)";
        jdbcTemplate.update(sql, id, name, salary);
    }

    public Employee getEmployee(int id) {
        String sql = "SELECT * FROM Employee WHERE id = ?";
        return jdbcTemplate.queryForObject(sql, new Object[]{id}, new BeanPropertyRowMapper<>(Employee.class));
    }
}

৫. স্প্রিং ট্রানজ্যাকশন ম্যানেজমেন্ট

স্প্রিং জেডিবিসি ট্রানজেকশন ম্যানেজমেন্টের জন্য PlatformTransactionManager ব্যবহার করে, যা নিশ্চিত করে যে আপনার ডেটাবেস অপারেশনগুলো ট্রানজেকশন হিসেবে সম্পাদিত হয়।

উদাহরণ হিসেবে, আপনি @Transactional অ্যানোটেশন ব্যবহার করতে পারেন:

@Transactional
public void addEmployeeWithTransaction(int id, String name, double salary) {
    addEmployee(id, name, salary);  // This will run within a transaction
}

৬. ডেটাবেস সংযোগ টেস্ট করা

অবশেষে, ডেটাবেসের সংযোগ টেস্ট করতে, স্প্রিং কনফিগারেশন সঠিকভাবে কাজ করছে কি না তা নিশ্চিত করতে একটি প্রধান শ্রেণী (Main Class) তৈরি করতে পারেন:

public class MainApp {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);

        EmployeeDao employeeDao = context.getBean(EmployeeDao.class);
        employeeDao.addEmployee(1, "John Doe", 50000);
        
        Employee emp = employeeDao.getEmployee(1);
        System.out.println("Employee: " + emp);

        context.close();
    }
}

উপসংহার

এইভাবে, স্প্রিং জেডিবিসি সেটআপ ও কনফিগারেশন করা যায়, যেখানে ডেটাবেস অ্যাক্সেস, টেমপ্লেট ব্যবহারের মাধ্যমে সঠিক ও কার্যকরভাবে অপারেশন পরিচালনা করা হয়।

Content added By

Maven/Gradle দিয়ে Spring JDBC অন্তর্ভুক্ত করা

162

Spring JDBC প্রকল্পে অন্তর্ভুক্ত করার জন্য আপনি Maven বা Gradle এর মাধ্যমে প্রয়োজনীয় ডিপেনডেন্সি যোগ করতে পারেন।

Maven দিয়ে Spring JDBC অন্তর্ভুক্ত করা:

Spring JDBC ব্যবহার করতে হলে pom.xml ফাইলে নিচের ডিপেনডেন্সিগুলি যোগ করতে হবে।

<dependencies>
    <!-- Spring JDBC Dependency -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.3.23</version> <!-- আপনি বর্তমান সংস্করণ ব্যবহার করতে পারেন -->
    </dependency>

    <!-- Spring Context (Spring Framework) Dependency -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.23</version> <!-- সংস্করণ একই হতে হবে -->
    </dependency>

    <!-- Database Driver Dependency (Example for MySQL) -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.28</version> <!-- আপনার ব্যবহৃত ডেটাবেস অনুযায়ী সংস্করণ নির্ধারণ করুন -->
    </dependency>
</dependencies>

এখানে:

  • spring-jdbc: Spring JDBC-এর জন্য ডিপেনডেন্সি।
  • spring-context: Spring Framework-এর কনটেক্সট সাপোর্ট প্রদান করে।
  • mysql-connector-java: MySQL ডেটাবেসের জন্য JDBC ড্রাইভার (আপনার ব্যবহৃত ডেটাবেস অনুসারে এটি পরিবর্তন হতে পারে)।

Gradle দিয়ে Spring JDBC অন্তর্ভুক্ত করা:

Gradle ব্যবহার করলে, আপনি build.gradle ফাইলে নিচের ডিপেনডেন্সিগুলি যোগ করতে পারবেন।

dependencies {
    // Spring JDBC Dependency
    implementation 'org.springframework:spring-jdbc:5.3.23'  // সংস্করণ আপনি আপডেট করতে পারেন

    // Spring Context Dependency
    implementation 'org.springframework:spring-context:5.3.23'

    // Database Driver (Example for MySQL)
    implementation 'mysql:mysql-connector-java:8.0.28'  // ডেটাবেস অনুসারে ড্রাইভার পরিবর্তন করুন
}

এখানে:

  • spring-jdbc: Spring JDBC ফিচারগুলির জন্য ডিপেনডেন্সি।
  • spring-context: Spring Framework কনটেক্সট।
  • mysql-connector-java: MySQL ডেটাবেসের জন্য JDBC ড্রাইভার।

সর্বশেষ সংস্করণ:

যেহেতু Spring JDBC এবং অন্যান্য লাইব্রেরির নতুন সংস্করণ প্রায়ই রিলিজ হয়, তাই আপনি সর্বশেষ সংস্করণ পাওয়ার জন্য Maven Central Repository বা Spring Framework's Official Site পরিদর্শন করতে পারেন।

ব্যবহারকারী কোড উদাহরণ:

এই ডিপেনডেন্সিগুলি যোগ করার পর, আপনি Spring JDBC এর মাধ্যমে ডেটাবেস অপারেশনগুলি পরিচালনা করতে পারবেন, যেমন JdbcTemplate ব্যবহার করে SQL কুয়েরি চালানো বা ডেটাবেসে ইনসার্ট/আপডেট/ডিলিট অপারেশন করা।

Content added By

Spring Boot এবং Spring Framework এ JDBC কনফিগারেশন

169

স্প্রিং ফ্রেমওয়ার্ক এবং স্প্রিং বুটের মধ্যে JDBC কনফিগারেশনের পদ্ধতি কিছুটা ভিন্ন হলেও উভয় পদ্ধতি ডেটাবেস অ্যাক্সেসকে সহজ এবং কার্যকর করে তোলে। নিচে Spring Framework এবং Spring Boot ব্যবহার করে JDBC কনফিগারেশন করার প্রক্রিয়া আলাদা আলাদা ভাবে দেখানো হয়েছে।


Spring Framework এ JDBC কনফিগারেশন

১. ডিপেন্ডেন্সি যোগ করা

Spring Framework ব্যবহার করার জন্য প্রয়োজনীয় spring-jdbc এবং ড্রাইভার ডিপেন্ডেন্সি যোগ করতে হবে।

Maven:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.x.x</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.x.x</version>
</dependency>

২. DataSource এবং JdbcTemplate কনফিগারেশন

XML Configuration:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- DataSource Bean -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
        <property name="username" value="root"/>
        <property name="password" value="password"/>
    </bean>

    <!-- JdbcTemplate Bean -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>
</beans>

Java Configuration:

@Configuration
public class AppConfig {

    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");
        dataSource.setUsername("root");
        dataSource.setPassword("password");
        return dataSource;
    }

    @Bean
    public JdbcTemplate jdbcTemplate(DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }
}

৩. DAO লেয়ার তৈরি করা

DAO ক্লাসে JdbcTemplate ব্যবহার করে ডেটাবেস অপারেশনগুলি ইমপ্লিমেন্ট করুন।

@Repository
public class UserDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    public List<User> getAllUsers() {
        String sql = "SELECT * FROM users";
        return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
    }

    public int saveUser(User user) {
        String sql = "INSERT INTO users (id, name, email) VALUES (?, ?, ?)";
        return jdbcTemplate.update(sql, user.getId(), user.getName(), user.getEmail());
    }
}

Spring Boot এ JDBC কনফিগারেশন

১. ডিপেন্ডেন্সি যোগ করা

Spring Boot ব্যবহার করলে শুধুমাত্র spring-boot-starter-jdbc এবং ড্রাইভার ডিপেন্ডেন্সি যোগ করতে হবে।

Maven:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

২. application.properties ফাইল কনফিগার করা

Spring Boot স্বয়ংক্রিয়ভাবে DataSource এবং JdbcTemplate কনফিগার করে দেয়। application.properties ফাইলে ডেটাবেসের কনফিগারেশন উল্লেখ করতে হবে।

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

অথবা YAML ফাইল ব্যবহার করলে:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: password
    driver-class-name: com.mysql.cj.jdbc.Driver

৩. JdbcTemplate ব্যবহার করে DAO তৈরি করা

Spring Boot স্বয়ংক্রিয়ভাবে JdbcTemplate কনফিগার করে দেয়। আপনি সরাসরি এটি ব্যবহার করতে পারেন।

@Repository
public class UserDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    public List<User> getAllUsers() {
        String sql = "SELECT * FROM users";
        return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
    }

    public int saveUser(User user) {
        String sql = "INSERT INTO users (id, name, email) VALUES (?, ?, ?)";
        return jdbcTemplate.update(sql, user.getId(), user.getName(), user.getEmail());
    }
}

Spring Framework বনাম Spring Boot

ফিচারSpring FrameworkSpring Boot
কনফিগারেশনম্যানুয়ালভাবে DataSource এবং JdbcTemplate তৈরি করতে হয়।অটো কনফিগারেশন সরবরাহ করে।
Boilerplate CodeXML বা Java Config প্রয়োজন।সরাসরি application.properties ফাইল ব্যবহার।
নির্ভরশীলতাস্পেসিফিক লাইব্রেরি ডিপেন্ডেন্সি যোগ করতে হয়।Starter প্যাকেজ দিয়ে প্রয়োজনীয় ডিপেন্ডেন্সি ইনক্লুড।
সহজতাকিছুটা জটিল।অনেক বেশি সহজ এবং দ্রুত।

উপসংহার

Spring Framework এবং Spring Boot উভয়ই JDBC কনফিগারেশনে কার্যকর, তবে Spring Boot স্বয়ংক্রিয় কনফিগারেশন এবং সরলীকৃত ডেটাবেস ইন্টিগ্রেশনের জন্য আরও বেশি উপযোগী। ছোট বা দ্রুত ডেভেলপমেন্টের ক্ষেত্রে Spring Boot সেরা, কিন্তু বড় এবং কাস্টমাইজড প্রোজেক্টের জন্য Spring Framework ব্যবহার করা যেতে পারে।

Content added By

application.properties বা application.yml ফাইলে ডেটাবেস কনফিগারেশন

174

Spring JDBC এর জন্য ডেটাবেস কনফিগারেশন application.properties বা application.yml ফাইলে করা হয়। এখানে আপনি ডেটাবেসের কানেকশন সেটিংস যেমন ড্রাইভার ক্লাস, URL, ইউজারনেম, পাসওয়ার্ড, এবং অন্যান্য কনফিগারেশন প্রোপার্টি নির্ধারণ করতে পারেন। নিচে application.properties এবং application.yml ফাইলের মাধ্যমে কনফিগারেশন দেখানো হলো:

1. application.properties ফাইলে Spring JDBC কনফিগারেশন:

# DataSource Configuration
spring.datasource.url=jdbc:mysql://localhost:3306/your_database
spring.datasource.username=root
spring.datasource.password=root_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.jpa.hibernate.ddl-auto=update

# Connection Pool Configuration (HikariCP Default Pool)
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.connection-timeout=30000

# Hibernate Configuration (Optional)
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update

2. application.yml ফাইলে Spring JDBC কনফিগারেশন:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/your_database
    username: root
    password: root_password
    driver-class-name: com.mysql.cj.jdbc.Driver
    jpa:
      hibernate:
        ddl-auto: update

  hikari:
    maximum-pool-size: 10
    minimum-idle: 5
    idle-timeout: 30000
    max-lifetime: 1800000
    connection-timeout: 30000

  jpa:
    database-platform: org.hibernate.dialect.MySQL5Dialect
    show-sql: true
    hibernate:
      ddl-auto: update

কনফিগারেশন ব্যাখ্যা:

  • spring.datasource.url: ডেটাবেসের URL যা ডাটাবেস সার্ভারের অবস্থান এবং ডাটাবেস নাম ধারণ করে।
  • spring.datasource.username এবং spring.datasource.password: ডেটাবেসে লগইন করার জন্য ইউজারনেম এবং পাসওয়ার্ড।
  • spring.datasource.driver-class-name: ড্রাইভার ক্লাসের নাম, যেমন MySQL এর জন্য com.mysql.cj.jdbc.Driver
  • spring.jpa.hibernate.ddl-auto: Hibernate এর DDL (Data Definition Language) অপারেশন যেমন update, create, create-drop, বা validate নির্ধারণ করে।
  • HikariCP Connection Pool: Spring Boot স্বাভাবিকভাবে HikariCP ব্যবহার করে যা ডেটাবেস কানেকশন পুলিং এর জন্য অত্যন্ত দক্ষ। এখানে আপনি বিভিন্ন পুল সেটিংস যেমন maximum-pool-size, minimum-idle, connection-timeout ইত্যাদি কনফিগার করতে পারেন।

Hibernate বা JPA ব্যবহারে অন্যান্য প্রোপার্টি:

যদি আপনি Hibernate বা JPA ব্যবহার করেন, তবে আপনি spring.jpa সেটিংসও কনফিগার করতে পারেন:

  • spring.jpa.show-sql: SQL কোড কনসোলে দেখতে হলে true করতে হবে।
  • spring.jpa.hibernate.ddl-auto: Hibernate ডিডিএল অটোমেটিক্যালি চালানোর জন্য update, create, create-drop, validate নির্বাচন করা যেতে পারে।

এই কনফিগারেশনগুলি Spring Boot অ্যাপ্লিকেশনে ডেটাবেস কানেকশন সেটআপ করতে সহায়ক হবে।

Content added By

প্রথম Spring JDBC প্রজেক্ট তৈরি করা (Hello JDBC Example)

164

স্প্রিং জেডিবিসি (Spring JDBC) ব্যবহার করে একটি সাধারণ JDBC প্রজেক্ট তৈরি করার জন্য, আমরা সাধারণত কয়েকটি ধাপে কাজ করি। নিচে একটি Hello JDBC Example তৈরি করার প্রক্রিয়া দেওয়া হয়েছে।

এখানে একটি ডেটাবেস টেবিল থাকবে এবং আমরা সেটি থেকে ডেটা রিড এবং ইনসার্ট করতে পারব।

১. Maven ডিপেনডেন্সি

প্রথমে, আমাদের Maven ব্যবহার করে প্রজেক্টে স্প্রিং জেডিবিসি এবং ডেটাবেস ড্রাইভার যুক্ত করতে হবে।

pom.xml ফাইলের মধ্যে নিচের ডিপেনডেন্সিগুলি যোগ করুন:

<dependencies>
    <!-- Spring JDBC Dependency -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.3.20</version>
    </dependency>

    <!-- Spring Core Dependency -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>5.3.20</version>
    </dependency>

    <!-- MySQL JDBC Driver -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.23</version>
    </dependency>
    
    <!-- Spring Context Dependency for DI -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.20</version>
    </dependency>

</dependencies>

২. ডেটাবেস কনফিগারেশন

আমাদের ডেটাবেসের সাথে সংযোগ স্থাপন করার জন্য একটি DataSource কনফিগারেশন প্রয়োজন। নিচে একটি applicationContext.xml কনফিগারেশন ফাইলের উদাহরণ দেওয়া হলো:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">

    <!-- DataSource Bean -->
    <bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/yourdb" />
        <property name="username" value="yourusername" />
        <property name="password" value="yourpassword" />
    </bean>

    <!-- JdbcTemplate Bean -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <constructor-arg ref="dataSource" />
    </bean>

</beans>

এখানে আপনি yourdb, yourusername এবং yourpassword আপনার ডেটাবেসের তথ্য দিয়ে পরিবর্তন করবেন।

৩. DAO (Data Access Object) ক্লাস তৈরি

এখন আমাদের ডেটাবেস থেকে ডেটা পড়তে এবং ইনসার্ট করতে একটি DAO ক্লাস তৈরি করতে হবে। এখানে একটি উদাহরণ দেওয়া হলো:

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import java.sql.ResultSet;
import java.sql.SQLException;

public class EmployeeDao {

    private JdbcTemplate jdbcTemplate;

    // Setter method for JdbcTemplate
    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    // Insert an employee into the database
    public void addEmployee(Employee employee) {
        String sql = "INSERT INTO employee (id, name, salary) VALUES (?, ?, ?)";
        jdbcTemplate.update(sql, employee.getId(), employee.getName(), employee.getSalary());
    }

    // Fetch an employee by ID
    public Employee getEmployeeById(int id) {
        String sql = "SELECT * FROM employee WHERE id = ?";
        return jdbcTemplate.queryForObject(sql, new Object[]{id}, new EmployeeRowMapper());
    }
}

class Employee {
    private int id;
    private String name;
    private double salary;

    // Getters and Setters
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }
}

class EmployeeRowMapper implements RowMapper<Employee> {
    @Override
    public Employee mapRow(ResultSet rs, int rowNum) throws SQLException {
        Employee employee = new Employee();
        employee.setId(rs.getInt("id"));
        employee.setName(rs.getString("name"));
        employee.setSalary(rs.getDouble("salary"));
        return employee;
    }
}

এখানে, EmployeeDao ক্লাস ডেটাবেসের সাথে যোগাযোগ করতে JdbcTemplate ব্যবহার করছে। addEmployee() মেথডের মাধ্যমে একটি কর্মীকে ডেটাবেসে ইনসার্ট করা হচ্ছে, এবং getEmployeeById() মেথডের মাধ্যমে একজন কর্মীকে ID দিয়ে পাওয়া যাচ্ছে।

৪. মেইন ক্লাস

এখন আমরা একটি Main Class তৈরি করব, যেখানে আমরা DAO ক্লাসটি ব্যবহার করব।

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class HelloJDBCExample {
    public static void main(String[] args) {
        // Load the Spring context
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

        // Get the EmployeeDao bean
        EmployeeDao employeeDao = (EmployeeDao) context.getBean("employeeDao");

        // Create a new employee
        Employee employee = new Employee();
        employee.setId(1);
        employee.setName("John Doe");
        employee.setSalary(50000);

        // Insert employee into the database
        employeeDao.addEmployee(employee);

        // Fetch the employee by ID
        Employee fetchedEmployee = employeeDao.getEmployeeById(1);
        System.out.println("Employee: " + fetchedEmployee.getName() + ", Salary: " + fetchedEmployee.getSalary());
    }
}

৫. ডেটাবেস টেবিল

আপনার MySQL ডেটাবেসে একটি employee টেবিল তৈরি করুন:

CREATE TABLE employee (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    salary DECIMAL(10, 2)
);

৬. রান করা

আপনি যদি সবকিছু সঠিকভাবে কনফিগার করেন এবং ডেটাবেসে ডেটা ইনসার্ট করেন, তখন আপনার প্রজেক্ট রান করার পর কর্মী (Employee) টেবিল থেকে ডেটা ইনসার্ট এবং ফেচ করতে সক্ষম হবেন।

উপসংহার:

এটি ছিল স্প্রিং জেডিবিসি ব্যবহার করে একটি সাধারণ "Hello JDBC Example" প্রজেক্ট। এখানে আমরা JdbcTemplate ব্যবহার করে ডেটাবেসে ডেটা ইনসার্ট এবং রিড করেছি।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...